[INFO] cloning repository https://github.com/arkiny/DreamCoast
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/arkiny/DreamCoast" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farkiny%2FDreamCoast", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farkiny%2FDreamCoast'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 47281b7506284616f031b5192924d21770212c73
[INFO] fixing arkiny/DreamCoast against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farkiny%2FDreamCoast" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-1-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/arkiny/DreamCoast
[INFO] finished tweaking git repo https://github.com/arkiny/DreamCoast
[INFO] tweaked toml for git repo https://github.com/arkiny/DreamCoast written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/arkiny/DreamCoast on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/arkiny/DreamCoast already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded profiling-procmacros v1.0.18
[INFO] [stderr]   Downloaded chlorine v1.0.13
[INFO] [stderr]   Downloaded avif-serialize v0.8.9
[INFO] [stderr]   Downloaded mint v0.5.9
[INFO] [stderr]   Downloaded imgref v1.12.2
[INFO] [stderr]   Downloaded gif v0.14.2
[INFO] [stderr]   Downloaded no_std_io2 v0.9.4
[INFO] [stderr]   Downloaded bitstream-io v4.10.0
[INFO] [stderr]   Downloaded built v0.8.1
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.47
[INFO] [stderr]   Downloaded cc v1.2.64
[INFO] [stderr]   Downloaded libfuzzer-sys v0.4.13
[INFO] [stderr]   Downloaded imgui v0.12.0
[INFO] [stderr]   Downloaded zerocopy v0.8.47
[INFO] [stderr]   Downloaded glam v0.30.10
[INFO] [stderr]   Downloaded imgui-sys v0.12.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 495ed0d1ba26800eadf59d3a62fd457416f92d44ca604e7db85324c8eaf4b861
[INFO] running `Command { std: "docker" "start" "495ed0d1ba26800eadf59d3a62fd457416f92d44ca604e7db85324c8eaf4b861", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "495ed0d1ba26800eadf59d3a62fd457416f92d44ca604e7db85324c8eaf4b861" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "495ed0d1ba26800eadf59d3a62fd457416f92d44ca604e7db85324c8eaf4b861", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "495ed0d1ba26800eadf59d3a62fd457416f92d44ca604e7db85324c8eaf4b861" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]     Checking log v0.4.32
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]     Checking regex-syntax v0.8.11
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking pin-project-lite v0.2.17
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]     Checking glam v0.30.10
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]     Checking memchr v2.8.2
[INFO] [stderr]     Checking rhi-types v0.0.0 (/opt/rustwide/workdir/crates/rhi-types)
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking as-slice v0.2.1
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]    Compiling built v0.8.1
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling av-scenechange v0.14.1
[INFO] [stderr]     Checking aligned v0.4.3
[INFO] [stderr]     Checking no_std_io2 v0.9.4
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling pastey v0.1.1
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking y4m v0.8.0
[INFO] [stderr]    Compiling cc v1.2.64
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]     Checking bitstream-io v4.10.0
[INFO] [stderr]    Compiling rav1e v0.8.1
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]     Checking new_debug_unreachable v1.0.6
[INFO] [stderr]     Checking imgref v1.12.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking zune-core v0.5.1
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking zune-jpeg v0.5.15
[INFO] [stderr]     Checking avif-serialize v0.8.9
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]     Checking pxfm v0.1.29
[INFO] [stderr]     Checking lebe v0.5.3
[INFO] [stderr]     Checking itoa v1.0.18
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking bitflags v2.13.0
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking fax v0.2.7
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]    Compiling dreamcoast-shader v0.0.0 (/opt/rustwide/workdir/crates/shader)
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking gif v0.14.2
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr] warning: dreamcoast-shader@0.0.0: slangc not found — shaders will be unavailable. Set SLANGC, place slangc (slangc.exe on Windows) in tools/slang/bin/, or add it to PATH. Releases: https://github.com/shader-slang/slang/releases
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]     Checking chlorine v1.0.13
[INFO] [stderr]     Checking mint v0.5.9
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking urlencoding v2.1.3
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]    Compiling imgui-sys v0.12.0
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.47
[INFO] [stderr]    Compiling profiling-procmacros v1.0.18
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]     Checking profiling v1.0.18
[INFO] [stderr]    Compiling gltf-derive v1.4.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking dreamcoast-core v0.0.0 (/opt/rustwide/workdir/crates/core)
[INFO] [stderr]     Checking dreamcoast-platform v0.0.0 (/opt/rustwide/workdir/crates/platform)
[INFO] [stdout] warning: field `has_mouse` is never read
[INFO] [stdout]   --> crates/platform/src/input.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Input {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     has_mouse: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Input` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `begin_frame`, `add_wheel`, `push_char`, `set_key`, `set_button`, and `set_mouse_pos` are never used
[INFO] [stdout]   --> crates/platform/src/input.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Input {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub(crate) fn begin_frame(&mut self) {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub(crate) fn add_wheel(&mut self, delta: f32) {
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub(crate) fn push_char(&mut self, ch: char) {
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub(crate) fn set_key(&mut self, vk: usize, down: bool) {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub(crate) fn set_button(&mut self, button: usize, down: bool) {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub(crate) fn set_mouse_pos(&mut self, x: i32, y: i32) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rhi v0.0.0 (/opt/rustwide/workdir/crates/rhi)
[INFO] [stdout] error[E0432]: unresolved import `dreamcoast_platform::Window`
[INFO] [stdout]   --> crates/rhi/src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use dreamcoast_platform::Window;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^------
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          no `Window` in the root
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> crates/platform/src/lib.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[cfg(windows)]
[INFO] [stdout]    |       ------- the item is gated here
[INFO] [stdout] 18 | pub use window::Window;
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> crates/platform/src/lib.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[cfg(target_os = "macos")]
[INFO] [stdout]    |       ------------------- the item is gated behind the `macos` feature
[INFO] [stdout] 23 | pub use window_macos::Window;
[INFO] [stdout]    |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Buffer` is non-empty
[INFO] [stdout]   --> crates/rhi/src/lib.rs:91:15
[INFO] [stdout]    |
[INFO] [stdout] 91 |         match self {
[INFO] [stdout]    |               ^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: `Buffer` defined here
[INFO] [stdout]   --> crates/rhi/src/lib.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     Buffer => rhi_vulkan::VulkanBuffer, rhi_d3d12::D3d12Buffer, rhi_metal::MetalBuffer);
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    = note: the matched value is of type `&Buffer`
[INFO] [stdout]    = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]    |
[INFO] [stdout] 91 ~         match self {
[INFO] [stdout] 92 +             _ => todo!(),
[INFO] [stdout] 93 +         }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Buffer` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:103:15
[INFO] [stdout]     |
[INFO] [stdout] 103 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Buffer` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:64:5
[INFO] [stdout]     |
[INFO] [stdout]  64 |     Buffer => rhi_vulkan::VulkanBuffer, rhi_d3d12::D3d12Buffer, rhi_metal::MetalBuffer);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Buffer`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 103 ~         match self {
[INFO] [stdout] 104 +             _ => todo!(),
[INFO] [stdout] 105 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Buffer` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:115:15
[INFO] [stdout]     |
[INFO] [stdout] 115 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Buffer` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:64:5
[INFO] [stdout]     |
[INFO] [stdout]  64 |     Buffer => rhi_vulkan::VulkanBuffer, rhi_d3d12::D3d12Buffer, rhi_metal::MetalBuffer);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Buffer`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 115 ~         match self {
[INFO] [stdout] 116 +             _ => todo!(),
[INFO] [stdout] 117 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Texture` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:132:15
[INFO] [stdout]     |
[INFO] [stdout] 132 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Texture` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:68:5
[INFO] [stdout]     |
[INFO] [stdout]  68 |     Texture => rhi_vulkan::VulkanTexture, rhi_d3d12::D3d12Texture, rhi_metal::MetalTexture);
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Texture`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 132 ~         match self {
[INFO] [stdout] 133 +             _ => todo!(),
[INFO] [stdout] 134 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&StorageBuffer` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:146:15
[INFO] [stdout]     |
[INFO] [stdout] 146 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `StorageBuffer` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:66:5
[INFO] [stdout]     |
[INFO] [stdout]  66 |     StorageBuffer => rhi_vulkan::VulkanStorageBuffer, rhi_d3d12::D3d12StorageBuffer, rhi_metal::MetalStorageBuffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&StorageBuffer`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 146 ~         match self {
[INFO] [stdout] 147 +             _ => todo!(),
[INFO] [stdout] 148 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&RenderTarget` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:160:15
[INFO] [stdout]     |
[INFO] [stdout] 160 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `RenderTarget` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:72:5
[INFO] [stdout]     |
[INFO] [stdout]  72 |     RenderTarget => rhi_vulkan::VulkanRenderTarget, rhi_d3d12::D3d12RenderTarget, rhi_metal::MetalRenderTarget);
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&RenderTarget`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 160 ~         match self {
[INFO] [stdout] 161 +             _ => todo!(),
[INFO] [stdout] 162 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&RenderTarget` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:172:15
[INFO] [stdout]     |
[INFO] [stdout] 172 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `RenderTarget` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:72:5
[INFO] [stdout]     |
[INFO] [stdout]  72 |     RenderTarget => rhi_vulkan::VulkanRenderTarget, rhi_d3d12::D3d12RenderTarget, rhi_metal::MetalRenderTarget);
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&RenderTarget`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 172 ~         match self {
[INFO] [stdout] 173 +             _ => todo!(),
[INFO] [stdout] 174 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&DepthBuffer` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:186:15
[INFO] [stdout]     |
[INFO] [stdout] 186 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `DepthBuffer` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:70:5
[INFO] [stdout]     |
[INFO] [stdout]  70 |     DepthBuffer => rhi_vulkan::VulkanDepthBuffer, rhi_d3d12::D3d12DepthBuffer, rhi_metal::MetalDepthBuffer);
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&DepthBuffer`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 186 ~         match self {
[INFO] [stdout] 187 +             _ => todo!(),
[INFO] [stdout] 188 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Cubemap` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:200:15
[INFO] [stdout]     |
[INFO] [stdout] 200 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Cubemap` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:74:5
[INFO] [stdout]     |
[INFO] [stdout]  74 |     Cubemap => rhi_vulkan::VulkanCubemap, rhi_d3d12::D3d12Cubemap, rhi_metal::MetalCubemap);
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Cubemap`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 200 ~         match self {
[INFO] [stdout] 201 +             _ => todo!(),
[INFO] [stdout] 202 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Cubemap` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:212:15
[INFO] [stdout]     |
[INFO] [stdout] 212 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Cubemap` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:74:5
[INFO] [stdout]     |
[INFO] [stdout]  74 |     Cubemap => rhi_vulkan::VulkanCubemap, rhi_d3d12::D3d12Cubemap, rhi_metal::MetalCubemap);
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Cubemap`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 212 ~         match self {
[INFO] [stdout] 213 +             _ => todo!(),
[INFO] [stdout] 214 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Cubemap` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:224:15
[INFO] [stdout]     |
[INFO] [stdout] 224 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Cubemap` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:74:5
[INFO] [stdout]     |
[INFO] [stdout]  74 |     Cubemap => rhi_vulkan::VulkanCubemap, rhi_d3d12::D3d12Cubemap, rhi_metal::MetalCubemap);
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Cubemap`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 224 ~         match self {
[INFO] [stdout] 225 +             _ => todo!(),
[INFO] [stdout] 226 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Instance` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:255:15
[INFO] [stdout]     |
[INFO] [stdout] 255 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Instance` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:44:5
[INFO] [stdout]     |
[INFO] [stdout]  44 |     Instance => rhi_vulkan::VulkanInstance, rhi_d3d12::D3d12Instance, rhi_metal::MetalInstance);
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Instance`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 255 ~         match self {
[INFO] [stdout] 256 +             _ => todo!(),
[INFO] [stdout] 257 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Instance` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:267:15
[INFO] [stdout]     |
[INFO] [stdout] 267 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Instance` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:44:5
[INFO] [stdout]     |
[INFO] [stdout]  44 |     Instance => rhi_vulkan::VulkanInstance, rhi_d3d12::D3d12Instance, rhi_metal::MetalInstance);
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Instance`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 267 ~         match self {
[INFO] [stdout] 268 +             _ => todo!(),
[INFO] [stdout] 269 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:280:15
[INFO] [stdout]     |
[INFO] [stdout] 280 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 280 ~         match self {
[INFO] [stdout] 281 +             _ => todo!(),
[INFO] [stdout] 282 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:294:15
[INFO] [stdout]     |
[INFO] [stdout] 294 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 294 ~         match self {
[INFO] [stdout] 295 +             _ => todo!(),
[INFO] [stdout] 296 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:305:15
[INFO] [stdout]     |
[INFO] [stdout] 305 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 305 ~         match self {
[INFO] [stdout] 306 +             _ => todo!(),
[INFO] [stdout] 307 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:316:15
[INFO] [stdout]     |
[INFO] [stdout] 316 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 316 ~         match self {
[INFO] [stdout] 317 +             _ => todo!(),
[INFO] [stdout] 318 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:328:15
[INFO] [stdout]     |
[INFO] [stdout] 328 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 328 ~         match self {
[INFO] [stdout] 329 +             _ => todo!(),
[INFO] [stdout] 330 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:340:15
[INFO] [stdout]     |
[INFO] [stdout] 340 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 340 ~         match self {
[INFO] [stdout] 341 +             _ => todo!(),
[INFO] [stdout] 342 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:355:15
[INFO] [stdout]     |
[INFO] [stdout] 355 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 355 ~         match self {
[INFO] [stdout] 356 +             _ => todo!(),
[INFO] [stdout] 357 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:369:15
[INFO] [stdout]     |
[INFO] [stdout] 369 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 369 ~         match self {
[INFO] [stdout] 370 +             _ => todo!(),
[INFO] [stdout] 371 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:380:15
[INFO] [stdout]     |
[INFO] [stdout] 380 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 380 ~         match self {
[INFO] [stdout] 381 +             _ => todo!(),
[INFO] [stdout] 382 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:399:15
[INFO] [stdout]     |
[INFO] [stdout] 399 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 399 ~         match self {
[INFO] [stdout] 400 +             _ => todo!(),
[INFO] [stdout] 401 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Device, &RaytracingScene)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:436:15
[INFO] [stdout]     |
[INFO] [stdout] 436 |         match (self, scene) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&Device, &RaytracingScene)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 436 ~         match (self, scene) {
[INFO] [stdout] 437 +             _ => todo!(),
[INFO] [stdout] 438 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:450:15
[INFO] [stdout]     |
[INFO] [stdout] 450 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 450 ~         match self {
[INFO] [stdout] 451 +             _ => todo!(),
[INFO] [stdout] 452 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:467:15
[INFO] [stdout]     |
[INFO] [stdout] 467 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 467 ~         match self {
[INFO] [stdout] 468 +             _ => todo!(),
[INFO] [stdout] 469 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Device, &Buffer)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:487:15
[INFO] [stdout]     |
[INFO] [stdout] 487 |         match (self, buffer) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&Device, &Buffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 487 ~         match (self, buffer) {
[INFO] [stdout] 488 +             _ => todo!(),
[INFO] [stdout] 489 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:500:15
[INFO] [stdout]     |
[INFO] [stdout] 500 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 500 ~         match self {
[INFO] [stdout] 501 +             _ => todo!(),
[INFO] [stdout] 502 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:511:15
[INFO] [stdout]     |
[INFO] [stdout] 511 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 511 ~         match self {
[INFO] [stdout] 512 +             _ => todo!(),
[INFO] [stdout] 513 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:522:15
[INFO] [stdout]     |
[INFO] [stdout] 522 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 522 ~         match self {
[INFO] [stdout] 523 +             _ => todo!(),
[INFO] [stdout] 524 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:534:15
[INFO] [stdout]     |
[INFO] [stdout] 534 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 534 ~         match self {
[INFO] [stdout] 535 +             _ => todo!(),
[INFO] [stdout] 536 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Device, &Swapchain)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:548:15
[INFO] [stdout]     |
[INFO] [stdout] 548 |         match (self, swapchain) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&Device, &Swapchain)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 548 ~         match (self, swapchain) {
[INFO] [stdout] 549 +             _ => todo!(),
[INFO] [stdout] 550 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:562:15
[INFO] [stdout]     |
[INFO] [stdout] 562 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 562 ~         match self {
[INFO] [stdout] 563 +             _ => todo!(),
[INFO] [stdout] 564 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:574:15
[INFO] [stdout]     |
[INFO] [stdout] 574 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 574 ~         match self {
[INFO] [stdout] 575 +             _ => todo!(),
[INFO] [stdout] 576 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Device, &TransientHeap)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:591:15
[INFO] [stdout]     |
[INFO] [stdout] 591 |         match (self, heap) {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&Device, &TransientHeap)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 591 ~         match (self, heap) {
[INFO] [stdout] 592 +             _ => todo!(),
[INFO] [stdout] 593 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:610:15
[INFO] [stdout]     |
[INFO] [stdout] 610 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 610 ~         match self {
[INFO] [stdout] 611 +             _ => todo!(),
[INFO] [stdout] 612 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:621:15
[INFO] [stdout]     |
[INFO] [stdout] 621 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 621 ~         match self {
[INFO] [stdout] 622 +             _ => todo!(),
[INFO] [stdout] 623 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:632:15
[INFO] [stdout]     |
[INFO] [stdout] 632 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 632 ~         match self {
[INFO] [stdout] 633 +             _ => todo!(),
[INFO] [stdout] 634 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:643:15
[INFO] [stdout]     |
[INFO] [stdout] 643 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 643 ~         match self {
[INFO] [stdout] 644 +             _ => todo!(),
[INFO] [stdout] 645 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Device` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:655:15
[INFO] [stdout]     |
[INFO] [stdout] 655 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Device` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:46:5
[INFO] [stdout]     |
[INFO] [stdout]  46 |     Device => rhi_vulkan::VulkanDevice, rhi_d3d12::D3d12Device, rhi_metal::MetalDevice);
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Device`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 655 ~         match self {
[INFO] [stdout] 656 +             _ => todo!(),
[INFO] [stdout] 657 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Swapchain, &Semaphore)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:670:15
[INFO] [stdout]     |
[INFO] [stdout] 670 |         match (self, signal) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&Swapchain, &Semaphore)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 670 ~         match (self, signal) {
[INFO] [stdout] 671 +             _ => todo!(),
[INFO] [stdout] 672 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&mut Swapchain` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:683:15
[INFO] [stdout]     |
[INFO] [stdout] 683 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Swapchain` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:52:5
[INFO] [stdout]     |
[INFO] [stdout]  52 |     Swapchain => rhi_vulkan::VulkanSwapchain, rhi_d3d12::D3d12Swapchain, rhi_metal::MetalSwapchain);
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&mut Swapchain`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 683 ~         match self {
[INFO] [stdout] 684 +             _ => todo!(),
[INFO] [stdout] 685 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Swapchain` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:694:15
[INFO] [stdout]     |
[INFO] [stdout] 694 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Swapchain` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:52:5
[INFO] [stdout]     |
[INFO] [stdout]  52 |     Swapchain => rhi_vulkan::VulkanSwapchain, rhi_d3d12::D3d12Swapchain, rhi_metal::MetalSwapchain);
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Swapchain`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 694 ~         match self {
[INFO] [stdout] 695 +             _ => todo!(),
[INFO] [stdout] 696 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Swapchain` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:705:15
[INFO] [stdout]     |
[INFO] [stdout] 705 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Swapchain` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:52:5
[INFO] [stdout]     |
[INFO] [stdout]  52 |     Swapchain => rhi_vulkan::VulkanSwapchain, rhi_d3d12::D3d12Swapchain, rhi_metal::MetalSwapchain);
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Swapchain`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 705 ~         match self {
[INFO] [stdout] 706 +             _ => todo!(),
[INFO] [stdout] 707 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Swapchain` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:716:15
[INFO] [stdout]     |
[INFO] [stdout] 716 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Swapchain` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:52:5
[INFO] [stdout]     |
[INFO] [stdout]  52 |     Swapchain => rhi_vulkan::VulkanSwapchain, rhi_d3d12::D3d12Swapchain, rhi_metal::MetalSwapchain);
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&Swapchain`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 716 ~         match self {
[INFO] [stdout] 717 +             _ => todo!(),
[INFO] [stdout] 718 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:729:15
[INFO] [stdout]     |
[INFO] [stdout] 729 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:58:5
[INFO] [stdout]     |
[INFO] [stdout]  58 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 729 ~         match self {
[INFO] [stdout] 730 +             _ => todo!(),
[INFO] [stdout] 731 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:740:15
[INFO] [stdout]     |
[INFO] [stdout] 740 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:58:5
[INFO] [stdout]     |
[INFO] [stdout]  58 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 740 ~         match self {
[INFO] [stdout] 741 +             _ => todo!(),
[INFO] [stdout] 742 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Swapchain)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:751:15
[INFO] [stdout]     |
[INFO] [stdout] 751 |         match (self, swapchain) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&CommandBuffer, &Swapchain)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 751 ~         match (self, swapchain) {
[INFO] [stdout] 752 +             _ => todo!(),
[INFO] [stdout] 753 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Swapchain)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:766:15
[INFO] [stdout]     |
[INFO] [stdout] 766 |         match (self, swapchain) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&CommandBuffer, &Swapchain)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 766 ~         match (self, swapchain) {
[INFO] [stdout] 767 +             _ => todo!(),
[INFO] [stdout] 768 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Swapchain, Option<&DepthBuffer>)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:787:15
[INFO] [stdout]     |
[INFO] [stdout] 787 |         match (self, swapchain, depth) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&CommandBuffer, &Swapchain, Option<&DepthBuffer>)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 787 ~         match (self, swapchain, depth) {
[INFO] [stdout] 788 +             _ => todo!(),
[INFO] [stdout] 789 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &RenderTarget, Option<&DepthBuffer>)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:826:15
[INFO] [stdout]     |
[INFO] [stdout] 826 |         match (self, target, depth) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&CommandBuffer, &RenderTarget, Option<&DepthBuffer>)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 826 ~         match (self, target, depth) {
[INFO] [stdout] 827 +             _ => todo!(),
[INFO] [stdout] 828 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:865:15
[INFO] [stdout]     |
[INFO] [stdout] 865 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]    --> crates/rhi/src/lib.rs:58:5
[INFO] [stdout]     |
[INFO] [stdout]  58 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 865 ~         match self {
[INFO] [stdout] 866 +             _ => todo!(),
[INFO] [stdout] 867 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Buffer)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:916:15
[INFO] [stdout]     |
[INFO] [stdout] 916 |         match (self, buffer) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&CommandBuffer, &Buffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 916 ~         match (self, buffer) {
[INFO] [stdout] 917 +             _ => todo!(),
[INFO] [stdout] 918 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &DepthBuffer)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:932:15
[INFO] [stdout]     |
[INFO] [stdout] 932 |         match (self, depth) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&CommandBuffer, &DepthBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 932 ~         match (self, depth) {
[INFO] [stdout] 933 +             _ => todo!(),
[INFO] [stdout] 934 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &DepthBuffer)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:946:15
[INFO] [stdout]     |
[INFO] [stdout] 946 |         match (self, depth) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&CommandBuffer, &DepthBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 946 ~         match (self, depth) {
[INFO] [stdout] 947 +             _ => todo!(),
[INFO] [stdout] 948 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &DepthBuffer)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:960:15
[INFO] [stdout]     |
[INFO] [stdout] 960 |         match (self, depth) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&CommandBuffer, &DepthBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 960 ~         match (self, depth) {
[INFO] [stdout] 961 +             _ => todo!(),
[INFO] [stdout] 962 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Cubemap)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:974:15
[INFO] [stdout]     |
[INFO] [stdout] 974 |         match (self, cube) {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&CommandBuffer, &Cubemap)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 974 ~         match (self, cube) {
[INFO] [stdout] 975 +             _ => todo!(),
[INFO] [stdout] 976 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Cubemap)` is non-empty
[INFO] [stdout]    --> crates/rhi/src/lib.rs:988:15
[INFO] [stdout]     |
[INFO] [stdout] 988 |         match (self, cube) {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `(&CommandBuffer, &Cubemap)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 988 ~         match (self, cube) {
[INFO] [stdout] 989 +             _ => todo!(),
[INFO] [stdout] 990 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Cubemap)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1009:15
[INFO] [stdout]      |
[INFO] [stdout] 1009 |         match (self, cube) {
[INFO] [stdout]      |               ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Cubemap)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1009 ~         match (self, cube) {
[INFO] [stdout] 1010 +             _ => todo!(),
[INFO] [stdout] 1011 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Cubemap, &DepthBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1034:15
[INFO] [stdout]      |
[INFO] [stdout] 1034 |         match (self, cube, depth) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Cubemap, &DepthBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1034 ~         match (self, cube, depth) {
[INFO] [stdout] 1035 +             _ => todo!(),
[INFO] [stdout] 1036 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1053:15
[INFO] [stdout]      |
[INFO] [stdout] 1053 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:58:5
[INFO] [stdout]      |
[INFO] [stdout]   58 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1053 ~         match self {
[INFO] [stdout] 1054 +             _ => todo!(),
[INFO] [stdout] 1055 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Swapchain, &Buffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1074:15
[INFO] [stdout]      |
[INFO] [stdout] 1074 |         match (self, swapchain, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Swapchain, &Buffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1074 ~         match (self, swapchain, buffer) {
[INFO] [stdout] 1075 +             _ => todo!(),
[INFO] [stdout] 1076 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Swapchain)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1093:15
[INFO] [stdout]      |
[INFO] [stdout] 1093 |         match (self, swapchain) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Swapchain)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1093 ~         match (self, swapchain) {
[INFO] [stdout] 1094 +             _ => todo!(),
[INFO] [stdout] 1095 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1107:15
[INFO] [stdout]      |
[INFO] [stdout] 1107 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:58:5
[INFO] [stdout]      |
[INFO] [stdout]   58 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1107 ~         match self {
[INFO] [stdout] 1108 +             _ => todo!(),
[INFO] [stdout] 1109 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &RenderTarget)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1119:15
[INFO] [stdout]      |
[INFO] [stdout] 1119 |         match (self, target) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &RenderTarget)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1119 ~         match (self, target) {
[INFO] [stdout] 1120 +             _ => todo!(),
[INFO] [stdout] 1121 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &RenderTarget)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1133:15
[INFO] [stdout]      |
[INFO] [stdout] 1133 |         match (self, target) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &RenderTarget)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1133 ~         match (self, target) {
[INFO] [stdout] 1134 +             _ => todo!(),
[INFO] [stdout] 1135 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &RenderTarget)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1148:15
[INFO] [stdout]      |
[INFO] [stdout] 1148 |         match (self, target) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &RenderTarget)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1148 ~         match (self, target) {
[INFO] [stdout] 1149 +             _ => todo!(),
[INFO] [stdout] 1150 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &GraphicsPipeline)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1161:15
[INFO] [stdout]      |
[INFO] [stdout] 1161 |         match (self, pipeline) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &GraphicsPipeline)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1161 ~         match (self, pipeline) {
[INFO] [stdout] 1162 +             _ => todo!(),
[INFO] [stdout] 1163 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1174:15
[INFO] [stdout]      |
[INFO] [stdout] 1174 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:58:5
[INFO] [stdout]      |
[INFO] [stdout]   58 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1174 ~         match self {
[INFO] [stdout] 1175 +             _ => todo!(),
[INFO] [stdout] 1176 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &ComputePipeline)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1186:15
[INFO] [stdout]      |
[INFO] [stdout] 1186 |         match (self, pipeline) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &ComputePipeline)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1186 ~         match (self, pipeline) {
[INFO] [stdout] 1187 +             _ => todo!(),
[INFO] [stdout] 1188 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1200:15
[INFO] [stdout]      |
[INFO] [stdout] 1200 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:58:5
[INFO] [stdout]      |
[INFO] [stdout]   58 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1200 ~         match self {
[INFO] [stdout] 1201 +             _ => todo!(),
[INFO] [stdout] 1202 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1212:15
[INFO] [stdout]      |
[INFO] [stdout] 1212 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:58:5
[INFO] [stdout]      |
[INFO] [stdout]   58 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1212 ~         match self {
[INFO] [stdout] 1213 +             _ => todo!(),
[INFO] [stdout] 1214 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &RenderTarget)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1224:15
[INFO] [stdout]      |
[INFO] [stdout] 1224 |         match (self, target) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &RenderTarget)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1224 ~         match (self, target) {
[INFO] [stdout] 1225 +             _ => todo!(),
[INFO] [stdout] 1226 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &RenderTarget)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1238:15
[INFO] [stdout]      |
[INFO] [stdout] 1238 |         match (self, target) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &RenderTarget)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1238 ~         match (self, target) {
[INFO] [stdout] 1239 +             _ => todo!(),
[INFO] [stdout] 1240 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &StorageBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1252:15
[INFO] [stdout]      |
[INFO] [stdout] 1252 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &StorageBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1252 ~         match (self, buffer) {
[INFO] [stdout] 1253 +             _ => todo!(),
[INFO] [stdout] 1254 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &StorageBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1267:15
[INFO] [stdout]      |
[INFO] [stdout] 1267 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &StorageBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1267 ~         match (self, buffer) {
[INFO] [stdout] 1268 +             _ => todo!(),
[INFO] [stdout] 1269 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &StorageBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1281:15
[INFO] [stdout]      |
[INFO] [stdout] 1281 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &StorageBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1281 ~         match (self, buffer) {
[INFO] [stdout] 1282 +             _ => todo!(),
[INFO] [stdout] 1283 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &StorageBuffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1297:15
[INFO] [stdout]      |
[INFO] [stdout] 1297 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &StorageBuffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1297 ~         match (self, buffer) {
[INFO] [stdout] 1298 +             _ => todo!(),
[INFO] [stdout] 1299 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1316:15
[INFO] [stdout]      |
[INFO] [stdout] 1316 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:58:5
[INFO] [stdout]      |
[INFO] [stdout]   58 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1316 ~         match self {
[INFO] [stdout] 1317 +             _ => todo!(),
[INFO] [stdout] 1318 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Buffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1327:15
[INFO] [stdout]      |
[INFO] [stdout] 1327 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Buffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1327 ~         match (self, buffer) {
[INFO] [stdout] 1328 +             _ => todo!(),
[INFO] [stdout] 1329 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&CommandBuffer, &Buffer)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1340:15
[INFO] [stdout]      |
[INFO] [stdout] 1340 |         match (self, buffer) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&CommandBuffer, &Buffer)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1340 ~         match (self, buffer) {
[INFO] [stdout] 1341 +             _ => todo!(),
[INFO] [stdout] 1342 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1353:15
[INFO] [stdout]      |
[INFO] [stdout] 1353 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:58:5
[INFO] [stdout]      |
[INFO] [stdout]   58 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1353 ~         match self {
[INFO] [stdout] 1354 +             _ => todo!(),
[INFO] [stdout] 1355 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&CommandBuffer` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1364:15
[INFO] [stdout]      |
[INFO] [stdout] 1364 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `CommandBuffer` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:58:5
[INFO] [stdout]      |
[INFO] [stdout]   58 |     CommandBuffer => rhi_vulkan::VulkanCommandBuffer, rhi_d3d12::D3d12CommandBuffer, rhi_metal::MetalCommandBuffer);
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout]      = note: the matched value is of type `&CommandBuffer`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1364 ~         match self {
[INFO] [stdout] 1365 +             _ => todo!(),
[INFO] [stdout] 1366 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Queue, &CommandBuffer, &Semaphore, &Semaphore, &Fence)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1383:15
[INFO] [stdout]      |
[INFO] [stdout] 1383 |         match (self, cmd, wait, signal, fence) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&Queue, &CommandBuffer, &Semaphore, &Semaphore, &Fence)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1383 ~         match (self, cmd, wait, signal, fence) {
[INFO] [stdout] 1384 +             _ => todo!(),
[INFO] [stdout] 1385 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Queue, &CommandBuffer, &Semaphore, &Semaphore, &Semaphore, &Fence)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1426:15
[INFO] [stdout]      |
[INFO] [stdout] 1426 |         match (self, cmd, wait, compute_wait, signal, fence) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&Queue, &CommandBuffer, &Semaphore, &Semaphore, &Semaphore, &Fence)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1426 ~         match (self, cmd, wait, compute_wait, signal, fence) {
[INFO] [stdout] 1427 +             _ => todo!(),
[INFO] [stdout] 1428 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Queue, &CommandBuffer, &Fence)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1462:15
[INFO] [stdout]      |
[INFO] [stdout] 1462 |         match (self, cmd, fence) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&Queue, &CommandBuffer, &Fence)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1462 ~         match (self, cmd, fence) {
[INFO] [stdout] 1463 +             _ => todo!(),
[INFO] [stdout] 1464 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&Queue, &Swapchain, &Semaphore)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1481:15
[INFO] [stdout]      |
[INFO] [stdout] 1481 |         match (self, swapchain, wait) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&Queue, &Swapchain, &Semaphore)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1481 ~         match (self, swapchain, wait) {
[INFO] [stdout] 1482 +             _ => todo!(),
[INFO] [stdout] 1483 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `(&ComputeQueue, &CommandBuffer, &Semaphore)` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1505:15
[INFO] [stdout]      |
[INFO] [stdout] 1505 |         match (self, cmd, signal) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the matched value is of type `(&ComputeQueue, &CommandBuffer, &Semaphore)`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1505 ~         match (self, cmd, signal) {
[INFO] [stdout] 1506 +             _ => todo!(),
[INFO] [stdout] 1507 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Fence` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1520:15
[INFO] [stdout]      |
[INFO] [stdout] 1520 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `Fence` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:60:5
[INFO] [stdout]      |
[INFO] [stdout]   60 |     Fence => rhi_vulkan::VulkanFence, rhi_d3d12::D3d12Fence, rhi_metal::MetalFence);
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout]      = note: the matched value is of type `&Fence`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1520 ~         match self {
[INFO] [stdout] 1521 +             _ => todo!(),
[INFO] [stdout] 1522 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Fence` is non-empty
[INFO] [stdout]     --> crates/rhi/src/lib.rs:1531:15
[INFO] [stdout]      |
[INFO] [stdout] 1531 |         match self {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: `Fence` defined here
[INFO] [stdout]     --> crates/rhi/src/lib.rs:60:5
[INFO] [stdout]      |
[INFO] [stdout]   60 |     Fence => rhi_vulkan::VulkanFence, rhi_d3d12::D3d12Fence, rhi_metal::MetalFence);
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout]      = note: the matched value is of type `&Fence`
[INFO] [stdout]      = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]      |
[INFO] [stdout] 1531 ~         match self {
[INFO] [stdout] 1532 +             _ => todo!(),
[INFO] [stdout] 1533 +         }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rhi` (lib) due to 91 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "495ed0d1ba26800eadf59d3a62fd457416f92d44ca604e7db85324c8eaf4b861", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "495ed0d1ba26800eadf59d3a62fd457416f92d44ca604e7db85324c8eaf4b861", kill_on_drop: false }`
[INFO] [stdout] 495ed0d1ba26800eadf59d3a62fd457416f92d44ca604e7db85324c8eaf4b861
